package com.DSya;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class DSyaGenerator {
    public static void main(String[] args) {

            FastAutoGenerator.create("jdbc:mysql://localhost:3306/hello_mp", "root", "1234567")
                    .globalConfig(builder -> {

                        builder.author("DSya") // 设置作者
                                .outputDir(System.getProperty("user.dir") + "/DSya-admin/src/main/java") // 输出路径
                                .disableOpenDir(); // 生成后不打开文件夹
                    })

                    // 3. 包配置
                    .packageConfig(builder -> {
                        builder.parent("com.DSya") // 父包名
                                .moduleName("") // 模块名（留空表示无模块）
                                .pathInfo(Collections.singletonMap(
                                        OutputFile.xml,
                                        System.getProperty("user.dir") + "/DSya-admin/src/main/resources/mapper" // XML 文件路径
                                ));
                    })
                    // 4. 策略配置
                    .strategyConfig(builder -> {
                        builder
                                // 指定要生成的两张表
                                .addInclude("user", "book")
//                                .addTablePrefix()
                                // 过滤表前缀（例如表名是 t_user，则设置 addTablePrefix("t_")）
                                // 实体类配置
                                .entityBuilder()
                                .enableLombok() // 启用 Lombok
                                .enableTableFieldAnnotation() // 字段添加 @TableField 注解
                                // Mapper 配置
                                .mapperBuilder()
                                // Service 配置
                                .serviceBuilder()
                                .formatServiceFileName("%sService") // Service 接口命名格式
                                // Controller 配置
                                .controllerBuilder()
                                .enableRestStyle(); // REST 风格 Controller
                    })
                    // 5. 模板引擎
                    .templateEngine(new FreemarkerTemplateEngine())
                    .execute();
    }
        }



